Processing signals from microphones in consumer electronic devices such as smartphones, hearing aids, headsets and the like presents a range of design problems. There are usually multiple microphones to consider, including one or more microphones on the body of the device and one or more external microphones such as headset or hands-free car kit microphones. In smartphones these microphones can be used not only to capture speech for phone calls, but also for taking an audio recording such as for voice notes or to accompany video capture. Increasingly, more than one microphone is being provided on the body of such devices, for example to improve noise cancellation.
Audio usage scenarios can be numerous in the case of a smartphone or tablet with an applications processor. For example, telephony functions should include a side tone so that the user can hear their own voice, noise reduction, and acoustic echo cancellation. Jack insertion detection should be provided to enable seamless switching between internal to external microphones when a headset or external microphone is plugged in or disconnected.
Consequently, a range of audio digital signal processing applications involve the mixing of signals from multiple microphones, whether across the full audio band or in selected frequency subbands. Adaptive directional beamforming is one such application, and involves the signals from two or more microphones being mixed in a manner to maintain gain in a direction of interest (typically being the forward direction of the listener), while adaptively nulling ambient background noise from other directions, such as conversations occurring behind or to the side of the listener. A generalized sidelobe canceller (GSC) of any suitable configuration can for example be used for this purpose. Adaptive directional beamforming works to null signals coming from a particular direction, such as background speech, and in particular this approach only works on such correlated signals.
However wind noise detection and reduction is a particularly difficult problem in devices with microphones. Wind noise is defined herein as a microphone signal generated from turbulence in an air stream flowing past microphone ports, as opposed to the sound of wind blowing past other objects such as the sound of rustling leaves as wind blows past a tree in the far field. Wind noise can be objectionable to the user, can mask other signals of interest, and can corrupt the device's ability to suppress background noise sources by beamforming. It is desirable that digital signal processing devices are configured to take steps to ameliorate the deleterious effects of wind noise upon signal quality. However, when wind noise is present, existing devices typically simply revert adaptive directional beamforming to an omnidirectional state by use of a primary microphone only. This is because the beamforming function cannot identify and thus cannot null a direction of origin of wind noise because wind noise is uncorrelated between microphones. Instead, disadvantageously, beamforming functions are usually corrupted by wind noise and will typically respond inappropriately by actually amplifying uncorrelated noise such as wind noise. It is for this reason that existing devices tend to simply disable beamforming in the presence of wind noise and revert to a primary microphone and omnidirectional operation.
Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is solely for the purpose of providing a context for the present invention. It is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present invention as it existed before the priority date of each claim of this application.
Throughout this specification the word “comprise”, or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.
In this specification, a statement that an element may be “at least one of” a list of options is to be understood that the element may be any one of the listed options, or may be any combination of two or more of the listed options.